package com.lin.constant;

import lombok.Data;

/**
 * @program: blog
 * @description: 状态码
 * @author: Lin
 * @create: 2020-04-03 12:28
 **/
public enum ResultCode {

    // 成功
    SUCCESS(200,"成功"),
    // 失败
    FAIL(201,"失败"),
    // 登录认证异常
    Authentication_Exception(401,"登录认证异常"),
    // 登录密码错误
    IncorrectCredentials_Exception(402,"登录密码错误"),
    // 登录账号错误
    UnknownAccount_Exception(403,"登录账号错误"),
    // 权限不足
    Authorization_Exception(404,"权限不足"),
    // 权限不足
    DuplicateKey_Exception(405,"该数据已存在 无需重复添加"),
    // HTTP方法不支持异常
    Http_Request_Method_NotSupported_Exception(406,"HTTP方法不支持异常"),
    // ElasticSearch搜索执行阶段异常
    Search_Phase_Execution_Exception(407,"ElasticSearch搜索执行阶段异常"),
    // JWT Token 解析异常
    MAL_Formed_JwtException(408,"JWT Token 解析异常"),

    /* 全局状态码 1000-1999 */
    // 添加失败
    INSERT_ERROR(1001,"添加失败"),
    // 删除失败
    DELETE_ERROR(1002,"删除失败"),
    // 更新失败
    UPDATE_ERROR(1003,"更新失败"),
    // 查询失败
    SELECT_ERROR(1004,"查询失败"),
    // 参数校验异常
    Valid_Exception(1005,"参数校验异常"),
    // 参数绑定异常
    BIND_Exception(1006,"参数绑定异常"),
    // 系统运行时异常
    RUNTIME_Exception(1007,"系统运行时异常"),
    // 系统运异常
    SYSTEM_Exception(1008,"系统运行异常"),
    // 消息客户端异常
    MQClient_Exception(1009,"消息客户端异常"),
    // 消息服务器异常
    MQBroker_Exception(1009,"消息服务器异常"),
    // 文件服务器异常
    QINIU_Exception(1009,"文件服务器异常"),


    /* 参数错误码 1001-1999 */
    // 参数无效
    PARAM_IS_INVALID(1001,"参数无效"),
    // 参数为空
    PARAM_IS_BLANK(1002,"参数为空"),
    // 参数类型错误
    PARAM_TYPE_BIND_ERROR(1003,"参数类型错误"),
    // 参数缺少
    PARAM_NOT_COMPLETE(1004,"参数缺少"),

    ELASTICSEARCH_INDEX_EXIST(1005,"ElasticSearch索引已存在"),
    ELASTICSEARCH_INDEX_NO_EXIST(1006,"ElasticSearch索引不存在"),


    /* 用户错误码 2001-2999 */
    // 参数类型错误
    USER_NOT_LOGIN_IN(2001,"用户未登陆,访问路径需要登陆,请登陆"),
    // 用户未登陆,访问路径需要登陆,请登陆
    USER_LOGIN_ERROR(2002,"账号不存在或密码错误"),
    // 用户不存在
    USER_NOT_EXIT(2003,"用户不存在"),
    // 用户已存在
    USER_HAS_EXITED(2004,"用户已存在"),
    // 用户手机号码错误
    USER_PHONE_ERROR(2005,"用户手机号码错误"),
    // 用户QQ号码错误
    USER_QQ_ERROR(2006,"用户QQ号码错误"),
    // 用户邮箱号码错误
    USER_EMAIL_ERROR(2007,"用户邮箱号码错误"),
    // 用户账号错误或密码错误
    USER_USERNAME_OR_PASSWORD_ERROR(2007,"用户账号错误或密码错误"),

    /* 文章错误码 3001 - 3999 */
    // 文章不存在
    ARTICLE_NOT_EXIT(3003,"文章不存在"),
    // 分类不存在
    CATEGORY_NOT_EXIT(3004, "分类不存在"),
    // 标签不存在
    TAGS_NOT_EXIT(3005, "标签不存在"),
    // 文件上传失败
    FILE_UPLOAD_FAILED(3006,"文件上传失败");







    private Integer code;
    private String message;

    ResultCode(Integer code,String message){
        this.code = code;
        this.message =message;
    }


    public Integer getCode() {
        return code;
    }

    public void setCode(Integer code) {
        this.code = code;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }
}
